// async function async1 () {
//   console.log('async1 start')
//   await async2()
//   // await 的后面，都可以看做是callback里的内容，即异步
//   // 类似，event loop，setTimeout(cb1)
//   // setTimeout(function () {console.log('async1 end')})
//   // Promise.resolve().then(() => {console.log('async1 end)})
//   console.log('async1 end') // 关键在这一步，它相当于放在 callback 中，最后执行
// }

// async function async2 () {
//   console.log('async2')
// }

// console.log('script start')
// async1()
// console.log('script end')


async function async1 () {
  console.log('async1 start') // 2
  await async2()
  // 下面三行都是异步回调 callbck 的内容
  console.log('async1 end') // 5
  await async3()
  console.log('async1 end end2') // 7
}

async function async2 () {
  console.log('async2') // 3
}

async function async3() {
  console.log('async3') // 6
}

console.log('script start') // 1
async1()
console.log('script end') // 4